package com.molichuxing.services.business.dto.response;

import com.molichuxing.framework.dto.ResponseRootDto;
import com.molichuxing.services.property.PaymentBusinessTypeEnum;
import com.molichuxing.services.property.PaymentCostTypeEnum;
import com.molichuxing.services.property.PaymentPayWayEnum;
import com.molichuxing.services.property.PaymentStatusEnum;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 支付
 * </p>
 *
 * @author zhaopenghui
 * @since 2019-08-24
 */
@Data
public class PaymentBizDto extends ResponseRootDto {
    private static final long serialVersionUID = 6839753636937305973L;

    /**
     * 支付id
     */
    private Integer paymentId;

    /**
     * 用户id（订单类型为经销商时存经销商id） user_id
     */
    private Integer userId;

    /**
     * 订单编号 order_code
     */
    private Long orderCode;

    /**
     * 排期id（订阅订单、专属全款订单、加购里程订单为0） schedule_id
     */
    private Integer scheduleId;

    /**
     * 存储设备ip,mac等可唯一标识设备的信息 device_info
     */
    private String deviceInfo;

    /**
     * 交易发起时间 time_start
     */
    private LocalDateTime timeStart;

    /**
     * 交易有效截止时间 time_end
     */
    private LocalDateTime timeEnd;

    /**
     * 付款流水号（第三方支付订单号） pay_number
     */
    private String payNumber;

    /**
     * 支付方式( 11：智能终端-微信， 12：智能终端-支付宝， 13：智能终端-pos机，14：智能终端-密码键盘，21：微信-H5，
     * 22：微信-APP，23：微信-公众号，24：微信-扫码，25：微信-小程序，31：支付宝-H5，32：支付宝-APP，41:
     * 线下支付，51：银联-H5，52：银联-APP) pay_way
     */
    private PaymentPayWayEnum payWay;

    /**
     * 支付金额 pay_amount
     */
    private BigDecimal payAmount;

    /**
     * 支付成功时间 pay_time
     */
    private LocalDateTime payTime;

    /**
     * 支付状态(0：待支付，1:成功，2：失败) pay_status
     */
    private PaymentStatusEnum payStatus;

    /**
     * 第三方流水号 third_pay_number
     */
    private String thirdPayNumber;

    /**
     * 备注 remark
     */
    private String remark;

    /**
     * 业务类型（1：订阅，2：专属：3：经销商） business_type
     */
    private PaymentBusinessTypeEnum businessType;

    /**
     * 费用类型（1：订购，2：加购，3：结算，4：还款） cost_type
     */
    private PaymentCostTypeEnum costType;

    /**
     * 付款人 pay_name
     */
    private String payName;

    /**
     * 付款银行账号 pay_bank_account
     */
    private String payBankAccount;
}
